Primary Key এবং Auto Increment Field তৈরি করা

Java Technologies - স্প্রিং বুট ওআরএম (Spring Boot ORM) - Entity এবং Table Mapping
165

Spring Boot ORM (Object-Relational Mapping) এ ডেটাবেস টেবিলের জন্য Primary Key এবং Auto Increment Field তৈরি করতে JPA অ্যানোটেশন ব্যবহার করা হয়। Primary Key হলো একটি টেবিলের প্রতিটি রেকর্ডকে ইউনিকভাবে চিহ্নিত করার জন্য ব্যবহৃত একটি ক্ষেত্র। Auto Increment Field নিশ্চিত করে যে প্রতিটি নতুন রেকর্ডের জন্য এই ক্ষেত্রের মান স্বয়ংক্রিয়ভাবে বৃদ্ধি পাবে।


Primary Key এবং Auto Increment Field তৈরির ধাপ

Entity ক্লাসে @Id এবং @GeneratedValue অ্যানোটেশন ব্যবহার

Entity ক্লাসে Primary Key এবং Auto Increment Field কনফিগার করার জন্য @Id এবং @GeneratedValue অ্যানোটেশন ব্যবহার করা হয়।

উদাহরণ: Employee Entity

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY) // Auto Increment Field
    private Long id; // Primary Key

    private String name;
    private String department;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }
}

অ্যানোটেশন ব্যাখ্যা

  • @Id:
    • এই অ্যানোটেশনটি একটি ফিল্ডকে Primary Key হিসেবে চিহ্নিত করে।
    • একটি Entity তে অন্তত একটি @Id ফিল্ড থাকতে হবে।
  • @GeneratedValue:
    • Primary Key ফিল্ডের মান স্বয়ংক্রিয়ভাবে জেনারেট করার জন্য ব্যবহৃত হয়।
    • strategy প্যারামিটার বিভিন্ন মান গ্রহণ করতে পারে:
      • GenerationType.IDENTITY: ডেটাবেস অটো-ইনক্রিমেন্ট ফিচার ব্যবহার করে।
      • GenerationType.SEQUENCE: ডেটাবেস সিকোয়েন্স ব্যবহার করে। PostgreSQL এবং Oracle ডেটাবেসে প্রযোজ্য।
      • GenerationType.TABLE: সিকোয়েন্স স্টোর করার জন্য একটি টেবিল ব্যবহার করে।
      • GenerationType.AUTO: Hibernate ডেটাবেসের উপর ভিত্তি করে স্ট্র্যাটেজি বেছে নেয়।

উদাহরণ: GenerationType.SEQUENCE

Oracle বা PostgreSQL ডেটাবেসে GenerationType.SEQUENCE ব্যবহার করতে হলে একটি সিকোয়েন্স ডিফাইন করতে হয়:

import jakarta.persistence.*;

@Entity
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employee_seq")
    @SequenceGenerator(name = "employee_seq", sequenceName = "employee_sequence", allocationSize = 1)
    private Long id;

    private String name;
    private String department;

    // Getters and Setters
}
  • @SequenceGenerator:
    • সিকোয়েন্সের নাম এবং ডেটাবেসে সংজ্ঞায়িত সিকোয়েন্সের নাম নির্ধারণ করে।
    • allocationSize নির্ধারণ করে কতবার ইনক্রিমেন্ট হবে।

Spring Boot এর মাধ্যমে টেবিল তৈরি

Spring Boot চালু করার সময় Hibernate ডেটাবেস টেবিল তৈরি করবে এবং Primary Key ফিল্ডটি Auto Increment হবে।

উদাহরণ: H2 ডেটাবেসের Table Schema

Spring Boot চালু করার পর H2 Console-এ দেখা যাবে:

CREATE TABLE EMPLOYEE (
    ID BIGINT AUTO_INCREMENT PRIMARY KEY,
    NAME VARCHAR(255),
    DEPARTMENT VARCHAR(255)
);

উপসংহার

  • Primary Key: টেবিলের প্রতিটি রেকর্ডকে ইউনিকভাবে চিহ্নিত করে।
  • Auto Increment Field: ডেটাবেসে নতুন রেকর্ড যোগ করার সময় মান স্বয়ংক্রিয়ভাবে বৃদ্ধি করে।
  • JPA অ্যানোটেশন: @Id এবং @GeneratedValue ব্যবহার করে এটি সহজেই কনফিগার করা যায়।

Spring Boot ORM এর মাধ্যমে Primary Key এবং Auto Increment Field তৈরির এই প্রক্রিয়া ডেভেলপারদের ডেটাবেস টেবিল পরিচালনা করতে অনেক সহজ করে তোলে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...